#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/stat.h>
#include "../logger.h"
#include "../soffset.h"

void print_soffset(char *msg, mrr_soffset *sof) {
	printf(msg);
	mrr_soffset_write(sof);
	puts("");
}

int main() {

	//	int fd = open ("/DATA.mrf", O_WRONLY | O_CREAT);
	//	ftruncate(fd, 1<<25);
	//	close(fd);


	puts("----\n");

	char *str = "{%v}, {%v}, {%v}";

	mrr_soffset *sof1, *sof2, *sof3;

	sof1 = mrr_soffset_new();
	
	mrr_soffset_step(&sof1, 0xA0F);
	mrr_soffset_step(&sof1, 0x1);
	mrr_soffset_step(&sof1, 0xB000);
	mrr_soffset_step(&sof1, -0xA00);
	mrr_soffset_step(&sof1, -0xB000);
	mrr_soffset_step(&sof1, -0x11);
	print_soffset("sof: ", sof1);

	mrr_soffset_free(sof1);
	
	// ----------------------------
	puts(">> S1 += S2");
	sof1 = mrr_soffset_new();
	mrr_soffset_step(&sof1, 0xA0F);
	print_soffset("  s1: ", sof1);
	
	sof2 = mrr_soffset_new();
	mrr_soffset_step(&sof2, -0xB0F);
	print_soffset("  s2: ", sof2);

	mrr_soffset_plus(&sof1, sof2);
	print_soffset("  s1: ", sof1);

	return 0;
}
